package com.aizuda.boot.modules.common.constant.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 交易方性质枚举
 */
@Getter
@AllArgsConstructor
public enum CounterpartyNatureEnum {

    ENTERPRISE(1, "企业", "包含依法注册登记的公司和个体工商户"),
    NATURAL_PERSON(2, "自然人", "提供物品或服务的自然人"),
    NON_PROFIT_ORGANIZATION(3, "非营利组织", "包含政府机构、学术研究机构、公益组织等非营利性组织");

    /**
     * 代码
     */
    private final Integer code;

    /**
     * 名称
     */
    private final String name;

    /**
     * 描述
     */
    private final String desc;

    /**
     * 根据code获取枚举
     * 
     * @param code 代码
     * @return 枚举对象
     */
    public static CounterpartyNatureEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (CounterpartyNatureEnum nature : values()) {
            if (nature.getCode().equals(code)) {
                return nature;
            }
        }
        return null;
    }

    public static Integer getByName(String name) {
        for (CounterpartyNatureEnum nature : values()) {
            if (nature.getName().equals(name)) {
                return nature.getCode();
            }
        }
        return null;
    }
} 